package com.sky.service.user;

import com.sky.dto.*;
import com.sky.result.PageResult;
import com.sky.vo.*;

import java.time.LocalDate;
//声明用户下单方法
public interface OrdersService {
    OrderSubmitVO submitOrders(OrdersSubmitDTO ordersSubmitDTO);

    PageResult historyOrders(Integer page, Integer pageSize, Integer status);

    OrderVO findOrdersById(Long id);

    void cancel(Long id);

    //管理端的分页查询
    PageResult pageQuery(OrdersPageQueryDTO ordersPageQueryDTO);

    OrderStatisticsVO statistics();

    void cancel(OrdersCancelDTO ordersCancelDTO);

    void confirm(OrdersConfirmDTO ordersConfirmDTO);

    void delivery(Long id);

    void complete(Long id);

    void reject(OrdersRejectionDTO ordersRejectionDTO);

    OrderReportVO orderReport(LocalDate begin, LocalDate end);

    OrderPaymentVO payment(OrdersPaymentDTO ordersPaymentDTO) throws Exception;


    void paySuccess(String orderNumber);

    void againOne(Long id);

    void reminder(Long id);

    void updatePickOrder(OrdersConfirmDTO ordersConfirmDTO);
}
